/*
* Copyright 2010 Competentum group
*
* Licensed under the GNU General Public License, Version 3.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.gnu.org/licenses/gpl.html
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.competentum.events
{
	import com.competentum.vos.AbstractItemVO;
	import com.competentum.vos.BindVO;
	import com.competentum.vos.EmployeeVO;
	import com.competentum.windows.Scope;
	import com.competentum.windows.ScopesManager;
	import com.competentum.lib.events.CommandEvent;
	
	import flash.events.Event;
	
	/**
	 * Main event for tool
	 * */
	public class WorkloadEvent extends CommandEvent
	{
		/**
		 * Usually item that must be processed (removed, updated or moved);
		 * */
		public var item:AbstractItemVO;
		
		/**
		 * Holder of values that will be used in processing (group name, new properties);
		 * */
		public var valueItem:AbstractItemVO;
		
		/**
		 * Reason event
		 * @see com.competentum.events.EventReasons
		 * */
		public var reason:String;
		
		/**
		 * States the fact that the event came from user, not from history manager.
		 * Using this flag controller must decide whether add undo-action to history or not.
		 * See applications in Employee-, Project- and BindEngine.
		 * */
		public var undoAllowed:Boolean = true;
		
		/**
		 * Scope ID for wich this event is responsible
		 * */
		public var scope:Scope = ScopesManager.currentScope;
		
		public function WorkloadEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			super(type, bubbles, cancelable);
		}
		
		override public function clone():Event
		{
			var event:WorkloadEvent = new WorkloadEvent(type, bubbles, cancelable);
			event.commandType = commandType;
			event.allowSeveralEngineHandlers = allowSeveralEngineHandlers;
			event.item = item;
			event.valueItem = valueItem;
			event.reason = reason;
			event.undoAllowed = undoAllowed;
			event.scope = scope;
			return event;
		}
	}
}